﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ADIGRE.Infrastructure.Queries.Usuario
{
    public interface IUsuarioQuery
    {
        /// <summary>
        /// p.eduardo.silva - 20130226:
        /// Autentica usuário
        /// </summary>
        /// <param name="user">Usuario de acesso</param>
        /// <returns></returns>
        Domain.Usuario ValidateUser(Domain.Usuario user);

        /// <summary>
        /// p.eduardo.silva - 20130226:
        /// Retorna todos os usuários ativos
        /// </summary>
        /// <returns></returns>
        IList<Domain.Usuario> GetAllUsuario();
        
        /// <summary>
        /// p.eduardo.silva - 20130226:
        /// Retorna Usuário de acordo com o login
        /// </summary>
        /// <param name="Login">Login do usuário desejado</param>
        /// <returns></returns>
        Domain.Usuario GetByUserName(string Login);

        /// <summary>
        /// p.eduardo.silva : 20130303:
        /// Recupera superusuario (root)
        /// </summary>
        /// <returns></returns>
        Domain.Usuario GetRoot();

    }
}
